package cn.com.bod.fas.pm.controller;

import java.util.List;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import cn.com.bod.fas.pm.model.po.CuSpecialCust;
import cn.com.bod.fas.pm.service.CuSpecialCustService;
import cn.com.yusys.yusp.commons.mapper.QueryModel;
import cn.com.yusys.yusp.commons.web.rest.dto.ResultDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

/**
 * @description 特殊客户信息Controller
 * @author houyaoxun
 * @date 2019年9月24日
 * @version 1.0.0
 * @Copyright (c) scfhdt
 */
@Api(tags = "特殊客户信息")
@RestController
@RequestMapping("/api/cu/cuspecialcust")
public class CuSpecialCustController {
	@Autowired
	private CuSpecialCustService cuSpecialCustService;

	/**
	 * @description getListPageByModel 查询白名单客户列表
	 * @author houyaoxun
	 * @date 2019年9月16日
	 * @param JSON格式参数
	 * @return 特殊客户列表信息
	 */
	@ApiOperation(value = "查询白名单客户列表")
	@GetMapping("/list")
	public ResultDto<List<CuSpecialCust>> getListPageByModel(QueryModel model) {
		ResultDto<List<CuSpecialCust>> resultDto = null;
		List<CuSpecialCust> list = cuSpecialCustService.getListByModel(model);
		resultDto = new ResultDto<>(list);
		resultDto.setMessage("查询成功");
		return resultDto;

	}

	/**
	 * @description 添加一个白名单客户
	 * @author houyaoxun
	 * @date 2019年9月16日
	 * @param 特殊客户类
	 * @return
	 * @return ResultDto<String>
	 */
	@ApiOperation(value = "添加一个白名单客户")
	@PostMapping("/addWhiteCust")
	public ResultDto<String> addWhiteCust(@Valid @RequestBody CuSpecialCust cust) {
		ResultDto<String> resultDto = new ResultDto<>();
		cuSpecialCustService.addWhiteCust(cust);
		resultDto.setMessage("新增成功");
		return resultDto;

	}

	/**
	 * @description 修改白名单客户
	 * @author houyaoxun
	 * @date 2019年9月16日
	 * @param 特殊客户类
	 * @return
	 * @return ResultDto<String>
	 */
	@ApiOperation(value = "修改白名单客户")
	@PostMapping("/updateWhiteCust")
	public ResultDto<String> updateWhiteCust(@Valid @RequestBody CuSpecialCust cust) {
		ResultDto<String> resultDto = new ResultDto<>();
		cuSpecialCustService.updateWhiteCust(cust);
		resultDto.setMessage("修改成功");
		return resultDto;

	}

	/**
	 * @description 删除白名单客户
	 * @author houyaoxun
	 * @date 2019年9月18日
	 * @return ResultDto<Integer>
	 */
	@ApiOperation(value = "删除白名单客户")
	@PostMapping("/delWhiteCust")
	public ResultDto<String> delWhiteCust(@RequestBody String ids) {
		return new ResultDto<String>("删除" + cuSpecialCustService.delWhiteCust(ids) + "条数据");

	}

	/**
	 * @description 导入白名单客户
	 * @author houyaoxun
	 * @date 2019年9月16日
	 * @param 文件，JSON类型参数
	 * @param model
	 * @return ResultDto<String>
	 */
	@ApiOperation(value = "批量导入白名单客户")
	@PostMapping("/importSpecialCust")
	public ResultDto<String> importSpecialCust(@RequestParam("file") MultipartFile multipartFile) {
		return new ResultDto<String>(cuSpecialCustService.importSpecialCust(multipartFile));

	}

}
